package com.translate.web.service;

import java.util.List;
import java.util.function.Function;

import com.translate.entity.FollowUpRecords;
import com.basic.service.contract.IBaseService;
import com.translate.vo.contract.IFollowUpRecordsByDetailVO;

/**
 * 客户服务
 * @author 111
 */
public interface IFollowUpRecordsService extends IBaseService<FollowUpRecords>{

	
	/**
	 * 根据条件获取 S 数据 VO 上层数据 R `返回数据的class`,
	 * @param <S>
	 * @param list
	 * @param function
	 * @return
	 */
	public <VO, R> List<R> listToCacheByCondition(List<VO> list, Function<VO, Integer> function, Class<R> target);

	/**
	 * 获取评论详情
	 * @param <VO>
	 * @param id
	 */
	public <VO extends IFollowUpRecordsByDetailVO> VO getFollowUpRecords(int id, VO vo);
	
	
	/**
	 * 根据条件获取 S 数据 VO 上层数据 R `返回数据的class`,
	 * @param <S>
	 * @param list
	 * @param function
	 * @return
	 */
//	public <VO, R> List<R> getCustomer(List<VO> list, Function<VO, Integer> function, Class<R> target);
	
	/**
	 * t -> vo
	 * @param <VO>
	 * @param iIdParam
	 * @param target
	 * @return
	 */
//	public <VO> VO getCustomerById(IIdParam iIdParam, Class<VO> target);
	
	/**
	 * 缓存
	 * @param <VO>
	 * @param iIdParam
	 * @param target
	 * @return
	 */
//	public CustomerPool getCustomerByIdToCache(IIdParam iIdParam);
	
	

	
	/**
	 * 根据条件获取 S 数据 VO 上层数据 R `返回数据的class`,
	 * @param <S>
	 * @param list
	 * @param function
	 * @return
	 */
//	public <VO, R> PageResponseData<R> getCustomer(List<VO> list, Function<VO, Integer> function, Class<R> target, ICustomerSearchParam customerSearchParam);

	
	
}
